package com.zwh.se.collection.iterator_iterable;

import java.util.ArrayList;
import java.util.ListIterator;

/**
 * @author yexi
 * ListIterator是ArrayList实现的另外一套迭代器。
 * ListIterator实现为:返回一个可以返回此列表中元素的迭代器（以固定顺序）。错误机制是 fail-fast
 */
public class ListIteratorDemo {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("aa");
        list.add("bb");
        list.add("cc");
        list.add("dd");
        list.add("ee");
        ListIterator<String> it = list.listIterator();
        while (it.hasNext()) {
            if ("cc".equals(it.next())) {
                it.add("kk");
            }
        }
        System.out.println(it.hasNext());//是否还有下一个元素
        //ListIterator的特殊之处:
        System.out.println(it.hasPrevious());//是否还有上个元素
        //逆向遍历：
        while (it.hasPrevious()) {
            System.out.println(it.previous());
        }
        System.out.println(it.hasNext());
        System.out.println(it.hasPrevious());
        System.out.println(list);
    }
}
